home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 18 / CU Amiga Magazine's Super CD-ROM 18 (1997)(EMAP Images)(GB)[!][issue 1998-01].iso / CUCD / Programming / AmigaE / Src / Tools / AmigaLib / ports.e < prev    next >
Text File  |  1995-03-30  |  769b  |  38 lines

  1. OPT MODULE
  2.  
  3. MODULE 'amigalib/lists',
  4.        'exec/lists',
  5.        'exec/memory',
  6.        'exec/nodes',
  7.        'exec/ports'
  8.  
  9. EXPORT PROC createPort(name, pri) HANDLE
  10.   DEF sigBit=-1, port=NIL:PTR TO mp
  11.   sigBit:=AllocSignal(-1)
  12.   port:=NewM(SIZEOF mp, MEMF_CLEAR OR MEMF_PUBLIC)
  13.   port.ln.name:=name
  14.   port.ln.pri:=pri
  15.   port.ln.type:=NT_MSGPORT
  16.   port.flags:=PA_SIGNAL
  17.   port.sigbit:=sigBit
  18.   port.sigtask:=FindTask(NIL)
  19.   IF name
  20.     AddPort(port)
  21.   ELSE
  22.     newList(port.msglist)
  23.   ENDIF
  24.   RETURN port
  25. EXCEPT
  26.   IF port THEN Dispose(port)
  27.   IF sigBit<>-1 THEN FreeSignal(sigBit)
  28.   RETURN NIL
  29. ENDPROC
  30.  
  31. EXPORT PROC deletePort(port:PTR TO mp)
  32.   IF port.ln.name THEN RemPort(port)
  33.   port.sigtask:=-1
  34.   port.msglist.head:=-1
  35.   FreeSignal(port.sigbit)
  36.   Dispose(port)
  37. ENDPROC
  38.